﻿/*
 * Last review by   : Yaser
 * Last review date : JUL-21-09
 */
using System;
using System.Collections.Generic;

namespace ERP.Business.DataTypes.Employee.Salary
{
    /// <summary>
    /// Loan
    /// </summary>
    [System.Runtime.Serialization.DataContract]
    [Serializable]
    [System.Runtime.Serialization.KnownType(typeof(Loan))]
    public class Loan : BaseTypes.BaseType
    {
        #region Properties

        /// <summary>
        /// Gets or sets the status.
        /// </summary>
        /// <value>The status.</value>
        [System.Runtime.Serialization.DataMember]
        public LoanStatus Status
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the monthly deduction amount.
        /// </summary>
        /// <value>The monthly deduction amount.</value>
        [System.Runtime.Serialization.DataMember]
        public float MonthlyDeductionAmount
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the original amount.
        /// </summary>
        /// <value>The original amount.</value>
        [System.Runtime.Serialization.DataMember]
        public float OriginalAmount
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the remaining amount.
        /// </summary>
        /// <value>The remaining amount.</value>
        [System.Runtime.Serialization.DataMember]
        public float RemainingAmount
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the payments.
        /// </summary>
        /// <value>The payments.</value>
        [System.Runtime.Serialization.DataMember]
        public List<Payment> Payments
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the date.
        /// </summary>
        /// <value>The date.</value>
        [System.Runtime.Serialization.DataMember]
        public DateTime Date
        {
            get;
            set;
        }

        #endregion
    }
}
